package mymyoux.events
{
	import mymyoux.io.mserverconnectorClasses.MServerIdentifier;
	/**
	 * MRoomEvent est envoyé par une MRoom lors de la réception de données provenant du salon correspondant.
	 * @author Mymyoux
	 * @version 1.0
	 */
	public class MRoomEvent extends MAdvSocketEvent
	{
		/**
		 * @private
		 */
		protected var _roomName:String;
		/**
		 * @private
		 */
		protected var _action:String;
		/**
		 * @private
		 */
		protected var _from:MServerIdentifier;
		/**
		 * Evenement envoyé lors de la réception de la donnée.
		 */
		static public const DATA:String="data";
		/** Crée un objet de type MRoomEvent
		 * @param roomName Nom du salon concerné.
		 * @param action Action effectuée par la donnée.
		 * @param value Valeur de la donnée.
		 * @param people MServerIdentifier représentant le joueur acteur de l'action.
		 * @param bubbles Determines whether the Event object participates in the bubbling stage of the event flow. The default value is false.
		 * @param cancelable Determines whether the Event object can be canceled. The default values is false.
		 */
		public function MRoomEvent(roomName:String,action:String,value:String,people:MServerIdentifier,bubbles:Boolean=false, cancelable:Boolean=false)
		{
			_roomName=roomName;
			_action=action;
			_value=value;
			_from=people;
			super(DATA+action,_value,people.idx, bubbles, cancelable);
		}
		/**
		 * Nom de l'action effectuée.
		 */
		public function get action():String{
			return _action;
		}
		/**
		 * Nom complet du salon.
		 */
		public function get room():String{
			return _roomName;
		}
		/**
		 * MServerIdentifier du joueur responsable de l'action.
		 */
		public function get people():MServerIdentifier{
			return _from;
		}
		/**
		 * @inheritDoc 
		 */
		public override function toString():String{
			return "[MRoomEvent name=\""+_roomName+"\" action=\""+_action+"\" from=\""+_from+"\" value=\""+_value+"\"]";
		}
		
	}
}